Fix preemption of multicalls in compat mode.
authorIan Campbell <ian.campbell@xensource.com>
Wed, 30 May 2007 10:55:38 +0000 (11:55 +0100)
committerIan Campbell <ian.campbell@xensource.com>
Wed, 30 May 2007 10:55:38 +0000 (11:55 +0100)
commitca938d8cc6d30f0c99e631e6fb050ce1c921ab08
tree9d56aebbd52486d1042ef8d64c28ab3e5749b071
parent96469475a6848763fd542d1305660ee7a8561569
Fix preemption of multicalls in compat mode.

mcs->call (struct multicall_entry) always needs to be translated into
mcs->compat_call (struct compat_multicall_entry) when a multicall is
preempted in compat mode. Previously this translation only occured for
those hypercalls which explicitly called hypercall_xlat_continuation()
which doesn't cover all hypercalls which could potentially be
preempted.

Change hypercall_xlat_continuation() to only translate only the
hypercall arguments themselves and not the multicall_entry
layout. Translate the layout for all hypercalls in in
compat_multicall() instead.

Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
xen/arch/x86/domain.c
xen/common/compat/multicall.c
xen/common/multicall.c